export type choosedItemType = {
  keyArr: Array<any>;
  labelArr: Array<any>;
  key: number | string;
  label: string;
};

export type listPageItemType = {
  label: number | string;
  key: number | string;
  haveChild?: boolean;
  keyArr: Array<any> | [];
  labelArr?: Array<any> | [];
};

export type listPageType = {
  pageNum: number;
  pageSize: number;
  size: number;
  startRow: number;
  endRow: number;
  total: number;
  pages: number;
  list: Array<any>;
  prePage: number;
  nextPage: number;
  isFirstPage: boolean;
  isLastPage: boolean;
  hasPreviousPage: boolean;
  hasNextPage: boolean;
  navigatePages?: number;
  navigatepageNums?: any;
  navigateFirstPage?: number;
  navigateLastPage?: number;
  firstPage?: number;
  lastPage?: number;
};

export type httpForListPageType = {
  data: listPageType;
};

export type cascaderPowerStoreObjType = {
  choosedData: any;
  chooseItem: any;
  getChoosedDataArr: any;
  watchSign: boolean;
  clearAllItem: any;
  initChooseItem: any;
};

export type rootOptionsType = {
  // 树
  labelArrKey?: string | number;
  keyArrKey?: string | number;
  labelKey?: string | number;
  keyKey?: string | number;
  haveChildKey?: string | number;
  // 搜索
  labelArrKeySearch?: string | number;
  keyArrKeySearch?: string | number;
  labelKeySearch?: string | number;
  keyKeySearch?: string | number;

  collapseTags?: boolean;
};
export type cascaderPowerStoreRootPropsType = {
  // 分页加载的方法
  getListFnc?: Promise<httpForListPageType>;
  rootOptions?: rootOptionsType;
};
export type cascaderPowerStoreRootPropsObjType = { props: cascaderPowerStoreRootPropsType; setProps: any };
